The Global Positioning System (GPS) location technology has been ubiquitous in wireless devices for several years now. Unfortunately, location determination using standalone GPS fix mode has issues such as long time to first fix and low or no yield indoors and in dense urban environments. Recently, there have been significant breakthroughs in enhanced location technologies using network assistance. These enhanced location technologies have the advantage of shorter time to fix, and in particular the time to first fix, as well as an accurate location determination in urban and in particular dense urban environments.
However, these enhanced location technologies may not be made available to all LBS applications, even though they may be running on the same device. For example, some LBS applications may not meet all user privacy criteria and therefore may not be considered trustworthy to use the carrier's server. Hence, the carrier server may allow the LBS application to request only fixes using the Standalone GPS mode of operation. Also, for tracking mode of operation, it is more efficient to use network assisted, but device computed GPS mode (or Device-Based Mode) rather than device assisted, but network computed GPS mode (or Device-Assisted Mode). Hence, LBS applications in tracking mode would request the device based mode either explicitly or by specifying in the fix request that the Location Engine should minimize the power consumption and/or WWAN bandwidth usage.
The point that is to be made therefore is that when there are multiple simultaneously running LBS applications, requesting fixes using different modes of operation, it becomes challenging to schedule processing for these requests so that the location engine can provide a result quickly and efficiently in response to each request. The common practice has been to use a simple First In First Out (FIFO) queue or to use a mode based priority. Unfortunately, both of these schemes have drawbacks in the form of bad user experience. In the first case, the response will not come quickly and power consumption and WWAN bandwidth usage may be inefficient. In the second case, some applications may be starved or may have to wait a long time for a response with a requested location fix.
Therefore, there is a need for a method and system to enable a mobile device to optimally select between different location fix modes so that requests are honored in the order in which they are received while at the same time optimizing for time of response, power consumption and/or WWAN bandwidth usage.